/*
	划分整数问题:
	q(n,m)
	n表示要划分的整数,
	m表示划分的最大数值

	n = 1   只有一种划分
	m = 1   只有一种划分
	n < m   q(n,n)种划分
	n = m   q(n,m-1)+1
	n > m   q(n,m-1)+q(n-m,m)
*/
#include<stdio.h>

int divideInt(int n,int m)
{
	if (n < 1 || m < 1)
		return 0;
	if (n == 1 || m == 1)
		return 1;
	if (n < m)
		return divideInt(n,n);
	if (n == m)
		return divideInt(n,m-1)+1;

	return divideInt(n,m-1)+divideInt(n-m,m);

}

int main(void)
{
	int a;
	a = divideInt(6,6);
	printf("%d\n",a);
}